package com.sihan.framework.etm.service.business;

import com.framework.model.PageResult;
import com.sihan.framework.etm.dto.business.ToolOverviewDTO;
import com.sihan.framework.etm.vo.business.DeviceMainInfo;
import com.sihan.framework.etm.vo.business.ToolOverviewVO;
import com.sihan.framework.etm.vo.statistics.BaseTypeVO;

import java.util.List;
import java.util.Map;

/**
 * @author gyz
 * @version 1.0
 * @since jdk1.8
 */
public interface StatisticalAnalysisService {
	PageResult<ToolOverviewVO> getToolOverview(ToolOverviewDTO dto);

	@SuppressWarnings("rawtypes")
	Map getToolDetailInfo(String toolId);

	List<DeviceMainInfo> getDeviceInfoList();

	/**
	 *
	 * @description  查询重要工器具
	 * @return
	 * @auther 韩兵
	 * @Date 2020年7月15日
	 * @return List<BaseStatisticsVO>
	 */
	List<BaseTypeVO> selectImportantTool();

	/**
	 *
	 * @description 工器具状态统计
	 * @return
	 * @auther 韩兵
	 * @Date 2020年7月15日
	 * @return List<BaseStatisticsVO>
	 */
	Map<String,List<BaseTypeVO>> selectSummaryTool();

	/**
	 *
	 * @description 领用排行
	 * @return
	 * @auther 韩兵
	 * @Date 2020年7月15日
	 * @return List<BaseStatisticsVO>
	 */
	List<BaseTypeVO> borrowSort();

	/**
	 *
	 * @description 供应商供货排行
	 * @return
	 * @auther 韩兵
	 * @Date 2020年7月15日
	 * @return List<BaseStatisticsVO>
	 */
	List<BaseTypeVO> manufatorSort();

	/**
	 *
	 * @description 采购与保费统计
	 * @return
	 * @auther 韩兵
	 * @Date 2020年7月15日
	 * @return List<BaseStatisticsVO>
	 */
	Map<String,Object[]> statisPurchaseAndCrapt();

	/**
	 *
	 * @description  领用与归还统计
	 * @return
	 * @auther 韩兵
	 * @Date 2020年7月15日
	 * @return List<BaseStatisticsVO>
	 */
	Map<String,Object[]> statisBorrowAndReturn();
	/**
	 *
	 * @description 统计检查与过期
	 * @return
	 * @auther 韩兵
	 * @Date 2020年7月15日
	 * @return List<BaseStatisticsVO>
	 */
	Map<String,Object[]> statisInpsectAndExpired();
	/**
	 *
	 * @description 统计总量与配置量
	 * @return
	 * @auther 韩兵
	 * @Date 2020年7月15日
	 * @return List<BaseStatisticsVO>
	 */
	Map<String,Object[]> statisToolTotalAndConfig();

	/**
	 * 检验提醒数量统计
	 * @return int
	 */
	int getNeedCheckToolNum();

	/**
	 * 检验异常数量统计
	 * @return int
	 */
	int getExceptionNum();
}
